aboutsummaryrefslogtreecommitdiff
path: root/src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx')
-rw-r--r--src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx b/src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx
new file mode 100644
index 0000000..10f5654
--- /dev/null
+++ b/src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx
@@ -0,0 +1,50 @@
+import { DataColumn, DataTable, Row } from '@umami/react-zen';
+import Link from 'next/link';
+import { TeamMemberEditButton } from '@/app/(main)/teams/[teamId]/TeamMemberEditButton';
+import { TeamMemberRemoveButton } from '@/app/(main)/teams/[teamId]/TeamMemberRemoveButton';
+import { useMessages } from '@/components/hooks';
+import { ROLES } from '@/lib/constants';
+
+export function TeamWebsitesTable({
+ teamId,
+ data = [],
+ allowEdit,
+}: {
+ teamId: string;
+ data: any[];
+ allowEdit: boolean;
+}) {
+ const { formatMessage, labels } = useMessages();
+
+ return (
+ <DataTable data={data}>
+ <DataColumn id="name" label={formatMessage(labels.name)}>
+ {(row: any) => <Link href={`/teams/${teamId}/websites/${row.id}`}>{row.name}</Link>}
+ </DataColumn>
+ <DataColumn id="domain" label={formatMessage(labels.domain)} />
+ <DataColumn id="createdBy" label={formatMessage(labels.createdBy)}>
+ {(row: any) => row?.createUser?.username}
+ </DataColumn>
+ {allowEdit && (
+ <DataColumn id="action" align="end">
+ {(row: any) => {
+ if (row?.role === ROLES.teamOwner) {
+ return null;
+ }
+
+ return (
+ <Row alignItems="center">
+ <TeamMemberEditButton teamId={teamId} userId={row?.user?.id} role={row?.role} />
+ <TeamMemberRemoveButton
+ teamId={teamId}
+ userId={row?.user?.id}
+ userName={row?.user?.username}
+ />
+ </Row>
+ );
+ }}
+ </DataColumn>
+ )}
+ </DataTable>
+ );
+}